use std::mem::swap;

pub fn odd_fibnacci_sum(threshold: u32) -> u32 {
    // 逐次计算斐波那契数并累加直到当前斐波那契数超过指定值
    let mut f1: u32 = 1;
    let mut f2: u32 = 2;
    let mut f: u32 = 2;
    if threshold <= 1 {
        return 0;
    } // 特殊情况考虑
    while f2 < threshold {
        if f2 % 2 == 1 
        {
            f = f + f2;
        } // 若奇数则累加
        swap(&mut f1, &mut f2);
        f2 = f2 + f1;
    }
    f
}
